package com.yuwei.base

import android.app.Application
import android.content.Context
import android.content.res.Configuration
import com.alibaba.android.arouter.launcher.ARouter
import com.tencent.mmkv.MMKV
import dagger.hilt.android.qualifiers.ApplicationContext

open class BaseApp : Application(){
    lateinit var appContext: Context
    /**
     * App挂载的时候调用
     */
    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        if(base!=null){
            appContext = base
        }
    }
    /**
     * App创建的时候调用
     */
    override fun onCreate() {
        super.onCreate()
//        if(BuildConfig.DEBUG){
            ARouter.openDebug()
            ARouter.openLog()
//        }
        ARouter.init(this)
        MMKV.initialize(this)
    }

    /**
     * App低内存时候调用
     */
    override fun onLowMemory() {
        super.onLowMemory()
        //进行回收相关操作 清理Glide内存缓存 释放大的集合 调用System.gc()
    }
    /**
     * App配置改变的时候调用 如果横竖屏切换了 会调用两次 语言切换 主题切换
     */
    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)
    }

    /**
     * App终止的时候调用
     */
    override fun onTerminate() {
        //保存一些状态 不能做耗时操作
        super.onTerminate()
    }

    /**
     * App内存不足的时候调用
     */
    override fun onTrimMemory(level: Int) {
        super.onTrimMemory(level)

    }
}